﻿using System.Collections.Concurrent;
using TrackSystem.IO.Utils;

namespace TrackSystem.IO.Formula
{
    /// <summary>
    /// 运算符类型定义
    /// </summary>
    public enum OperatorType
    {
        /// <summary>
        /// 结束符号
        /// </summary>
        END = 0,

        /// <summary>
        /// 冒号
        /// </summary>
        COLON = 5,


        /// <summary>
        /// 与
        /// </summary>
        AND = 10,
        /// <summary>
        /// 或
        /// </summary>
        OR,

        /// <summary>
        /// 小于
        /// </summary>
        LT = 20,
        /// <summary>
        /// 大于
        /// </summary>
        GT,
        /// <summary>
        /// 左括号
        /// </summary>
        LB,
        /// <summary>
        /// 右括号
        /// </summary>
        RB,
        /// <summary>
        /// 小于等于
        /// </summary>
        LE,
        /// <summary>
        /// 大于等于
        /// </summary>
        GE,
        /// <summary>
        /// 等于
        /// </summary>
        ET,
        /// <summary>
        /// 与
        /// </summary>
        UT,

        /// <summary>
        /// 疑问号
        /// </summary>
        QUESTION,

        /// <summary>
        /// 加
        /// </summary>
        ADD = 30,
        /// <summary>
        /// 减
        /// </summary>
        SUB,

        /// <summary>
        /// 除
        /// </summary>
        DIV = 40,
        /// <summary>
        /// 乘
        /// </summary>
        MUL,
        /// <summary>
        /// 模
        /// </summary>
        MOD,
        /// <summary>
        /// 定点
        /// </summary>
        FIX,
        /// <summary>
        /// 乘方
        /// </summary>
        POW = 50,

        /// <summary>
        /// 正
        /// </summary>
        PS = 60,
        /// <summary>
        /// 负
        /// </summary>
        NS,
        /// <summary>
        /// 非
        /// </summary>
        NOT,
        /// <summary>
        /// 大
        /// </summary>
        LG,

        /// <summary>
        /// 正切
        /// </summary>
        TAN = 70,
        /// <summary>
        /// 反正切
        /// </summary>
        ATAN,
        /// <summary>
        /// 正弦
        /// </summary>
        SIN,
        /// <summary>
        /// 反正弦
        /// </summary>
        ASIN,
        /// <summary>
        /// 余弦
        /// </summary>
        COS,
        /// <summary>
        /// 反余弦
        /// </summary>
        ACOS,
        /// <summary>
        /// 开根号
        /// </summary>
        SQRT,
        /// <summary>
        /// 产生随机数
        /// </summary>
        RAND,
        /// <summary>
        /// 求绝对值
        /// </summary>
        ABS,
        /// <summary>
        /// 取整
        /// </summary>
        INT,
        /// <summary>
        /// 计算距离
        /// </summary>
        DIST,
        /// <summary>
        /// 计算方位角
        /// </summary>
        AZIM,
        /// <summary>
        /// 斜率计算函数
        /// </summary>
        RAMP,
        /// <summary>
        /// 角度计算
        /// </summary>
        ANGLE,
        /// <summary>
        /// 滤波计算
        /// </summary>
        FILTER,
        /// <summary>
        /// 速度计算
        /// </summary>
        SPEED,
        
        /// <summary>
        /// 用户自定义
        /// </summary>
        USERDEF = 100,

        NONE = 200, // 无操作符
    }
}
